package com.scsj.cloud.base.data.dao;

/**
 * Redis 分布式锁接口
 * @author caoxiubin
 * @date   20190417
 */
public interface RedisDistributedLock {
	
	  /** 
	   * 加锁成功，返回加锁时间 
	   * @param lockKey 
	   * @param threadName 
	   * @return 
	   */ 
	  public long lock(String lockKey, String threadName); 
	  
	  /** 
	   * 解锁， 需要更新加锁时间，判断是否有权限 
	   * @param lockKey 
	   * @param lockValue 
	   * @param threadName 
	   */ 
	  public void unlock(String lockKey, long lockValue, String threadName); 
	  
	  /** 
	   * 多服务器集群，使用下面的方法，获取redis时间代替System.currentTimeMillis()。(避免多服务器系统时间差异性) 
	   * @return 
	   */ 
	  public long currtTimeForRedis(); 

}
